package com.lekang.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lekang.common.annotation.Excel;
import com.lekang.common.core.domain.BaseEntity;

/**
 * 任务安排对象 task_arrangement
 *
 * @author zhihao
 * @date 2025-10-14
 */
public class TaskArrangement extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 老人编号 */
    @Excel(name = "老人编号")
    private Long elderlyId;

    /** 项目名称外键 */
    @Excel(name = "项目名称外键")
    private Long projectNameId;

    /** 项目类型 */
    @Excel(name = "项目类型")
    private String projectType;

    /** 期望服务时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "期望服务时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date expectedServiceTime;

    /** 关联单据 */
    @Excel(name = "关联单据")
    private String relatedOrderNo;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 取消时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cancelTime;

    /** 取消人 */
    @Excel(name = "取消人")
    private Long cancelPerson;

    /** 取消原因 */
    @Excel(name = "取消原因")
    private String cancelReason;

    /** 执行人 */
    @Excel(name = "执行人")
    private Long executor;

    /** 执行时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "执行时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date executionTime;

    /** 执行图片 */
    @Excel(name = "执行图片")
    private String executionImage;

    /** 执行记录 */
    @Excel(name = "执行记录")
    private String executionRecord;

    /** 改期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "改期时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date rescheduleTime;

    /** 额外字段1 */
    private String extraField1;

    /** 额外字段2 */
    private String extraField2;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setElderlyId(Long elderlyId)
    {
        this.elderlyId = elderlyId;
    }

    public Long getElderlyId()
    {
        return elderlyId;
    }

    public void setProjectNameId(Long projectNameId)
    {
        this.projectNameId = projectNameId;
    }

    public Long getProjectNameId()
    {
        return projectNameId;
    }

    public void setProjectType(String projectType)
    {
        this.projectType = projectType;
    }

    public String getProjectType()
    {
        return projectType;
    }

    public void setExpectedServiceTime(Date expectedServiceTime)
    {
        this.expectedServiceTime = expectedServiceTime;
    }

    public Date getExpectedServiceTime()
    {
        return expectedServiceTime;
    }

    public void setRelatedOrderNo(String relatedOrderNo)
    {
        this.relatedOrderNo = relatedOrderNo;
    }

    public String getRelatedOrderNo()
    {
        return relatedOrderNo;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setCancelTime(Date cancelTime)
    {
        this.cancelTime = cancelTime;
    }

    public Date getCancelTime()
    {
        return cancelTime;
    }

    public void setCancelPerson(Long cancelPerson)
    {
        this.cancelPerson = cancelPerson;
    }

    public Long getCancelPerson()
    {
        return cancelPerson;
    }

    public void setCancelReason(String cancelReason)
    {
        this.cancelReason = cancelReason;
    }

    public String getCancelReason()
    {
        return cancelReason;
    }

    public void setExecutor(Long executor)
    {
        this.executor = executor;
    }

    public Long getExecutor()
    {
        return executor;
    }

    public void setExecutionTime(Date executionTime)
    {
        this.executionTime = executionTime;
    }

    public Date getExecutionTime()
    {
        return executionTime;
    }

    public void setExecutionImage(String executionImage)
    {
        this.executionImage = executionImage;
    }

    public String getExecutionImage()
    {
        return executionImage;
    }

    public void setExecutionRecord(String executionRecord)
    {
        this.executionRecord = executionRecord;
    }

    public String getExecutionRecord()
    {
        return executionRecord;
    }

    public void setRescheduleTime(Date rescheduleTime)
    {
        this.rescheduleTime = rescheduleTime;
    }

    public Date getRescheduleTime()
    {
        return rescheduleTime;
    }

    public void setExtraField1(String extraField1)
    {
        this.extraField1 = extraField1;
    }

    public String getExtraField1()
    {
        return extraField1;
    }

    public void setExtraField2(String extraField2)
    {
        this.extraField2 = extraField2;
    }

    public String getExtraField2()
    {
        return extraField2;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("elderlyId", getElderlyId())
            .append("projectNameId", getProjectNameId())
            .append("projectType", getProjectType())
            .append("expectedServiceTime", getExpectedServiceTime())
            .append("createTime", getCreateTime())
            .append("relatedOrderNo", getRelatedOrderNo())
            .append("status", getStatus())
            .append("cancelTime", getCancelTime())
            .append("cancelPerson", getCancelPerson())
            .append("cancelReason", getCancelReason())
            .append("executor", getExecutor())
            .append("executionTime", getExecutionTime())
            .append("executionImage", getExecutionImage())
            .append("executionRecord", getExecutionRecord())
            .append("rescheduleTime", getRescheduleTime())
            .append("extraField1", getExtraField1())
            .append("extraField2", getExtraField2())
            .toString();
    }
}
